package org.linlinjava.litemall.db.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;

public class LitemallActivityGroupon {
    public enum StateEnum {
        /**
         * 团购活动状态，开团/参团待确认-0 开团/参团成功-1，开团/参团失败-2
         */
        TOBE_CONFIRM((byte) 0, "开团/参团待确认"),
        SUCCESS((byte) 1, "开团/参团成功"),
        FAIL((byte) 2, "开团/参团失败"),;

        private Byte code;

        private String desc;

        StateEnum(Byte code, String desc) {
            this.code = code;
            this.desc = desc;
        }

        public static LitemallActivityGroupon.StateEnum fromCode(Byte code) {
            return Arrays.stream(LitemallActivityGroupon.StateEnum.values()).filter(e -> e.getCode().equals(code)).findFirst().orElse(null);
        }

        public Byte getCode() {
            return this.code;
        }

        public String getDesc() {
            return this.desc;
        }
    }

    public enum PayStateEnum {
        /**
         * 支付状态 0-未支付 1-支付成功 2-支付失败
         */
        TOBE_PAY((byte) 0, "未支付"),
        SUCCESS((byte) 1, "支付成功"),
        FAIL((byte) 2, "支付失败");

        private Byte code;

        private String desc;

        PayStateEnum(Byte code, String desc) {
            this.code = code;
            this.desc = desc;
        }

        public static LitemallActivityGroupon.PayStateEnum fromCode(Byte code) {
            return Arrays.stream(LitemallActivityGroupon.PayStateEnum.values()).filter(e -> e.getCode().equals(code)).findFirst().orElse(null);
        }

        public Byte getCode() {
            return this.code;
        }

        public String getDesc() {
            return this.desc;
        }
    }

    public enum UserTypeEnum {
        /**
         * 用户类型 1-老学员 2-新学员
         */
        OLD((byte) 1, "老学员"),
        NEW((byte) 2, "新学员"),;

        private Byte code;

        private String desc;

        UserTypeEnum(Byte code, String desc) {
            this.code = code;
            this.desc = desc;
        }

        public static LitemallActivityGroupon.UserTypeEnum fromCode(Byte code) {
            return Arrays.stream(LitemallActivityGroupon.UserTypeEnum.values()).filter(e -> e.getCode().equals(code)).findFirst().orElse(null);
        }

        public Byte getCode() {
            return this.code;
        }

        public String getDesc() {
            return this.desc;
        }
    }

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    public static final Boolean IS_DELETED = Deleted.IS_DELETED.value();

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    public static final Boolean NOT_DELETED = Deleted.NOT_DELETED.value();

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.id
     *
     * @mbg.generated
     */
    private Integer id;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.activity_id
     *
     * @mbg.generated
     */
    private Integer activityId;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.order_id
     *
     * @mbg.generated
     */
    private Integer orderId;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.order_price
     *
     * @mbg.generated
     */
    private BigDecimal orderPrice;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.groupon_code
     *
     * @mbg.generated
     */
    private String grouponCode;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.groupon_id
     *
     * @mbg.generated
     */
    private Integer grouponId;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.user_type
     *
     * @mbg.generated
     */
    private Byte userType;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.user_id
     *
     * @mbg.generated
     */
    private String userId;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.user_name
     *
     * @mbg.generated
     */
    private String userName;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.user_age
     *
     * @mbg.generated
     */
    private Integer userAge;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.image
     *
     * @mbg.generated
     */
    private String image;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.contact_name
     *
     * @mbg.generated
     */
    private String contactName;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.contact_phone
     *
     * @mbg.generated
     */
    private String contactPhone;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.subject_id
     *
     * @mbg.generated
     */
    private Integer subjectId;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.subject
     *
     * @mbg.generated
     */
    private String subject;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.state
     *
     * @mbg.generated
     */
    private Byte state;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.pay_state
     *
     * @mbg.generated
     */
    private Byte payState;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.add_time
     *
     * @mbg.generated
     */
    private LocalDateTime addTime;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.created_by
     *
     * @mbg.generated
     */
    private String createdBy;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.update_time
     *
     * @mbg.generated
     */
    private LocalDateTime updateTime;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.updated_by
     *
     * @mbg.generated
     */
    private String updatedBy;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column litemall_activity_groupon.deleted
     *
     * @mbg.generated
     */
    private Boolean deleted;

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.id
     *
     * @return the value of litemall_activity_groupon.id
     * @mbg.generated
     */
    public Integer getId() {
        return id;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.id
     *
     * @param id the value for litemall_activity_groupon.id
     * @mbg.generated
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.activity_id
     *
     * @return the value of litemall_activity_groupon.activity_id
     * @mbg.generated
     */
    public Integer getActivityId() {
        return activityId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.activity_id
     *
     * @param activityId the value for litemall_activity_groupon.activity_id
     * @mbg.generated
     */
    public void setActivityId(Integer activityId) {
        this.activityId = activityId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.order_id
     *
     * @return the value of litemall_activity_groupon.order_id
     * @mbg.generated
     */
    public Integer getOrderId() {
        return orderId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.order_id
     *
     * @param orderId the value for litemall_activity_groupon.order_id
     * @mbg.generated
     */
    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.order_price
     *
     * @return the value of litemall_activity_groupon.order_price
     * @mbg.generated
     */
    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.order_price
     *
     * @param orderPrice the value for litemall_activity_groupon.order_price
     * @mbg.generated
     */
    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.groupon_code
     *
     * @return the value of litemall_activity_groupon.groupon_code
     * @mbg.generated
     */
    public String getGrouponCode() {
        return grouponCode;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.groupon_code
     *
     * @param grouponCode the value for litemall_activity_groupon.groupon_code
     * @mbg.generated
     */
    public void setGrouponCode(String grouponCode) {
        this.grouponCode = grouponCode;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.groupon_id
     *
     * @return the value of litemall_activity_groupon.groupon_id
     * @mbg.generated
     */
    public Integer getGrouponId() {
        return grouponId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.groupon_id
     *
     * @param grouponId the value for litemall_activity_groupon.groupon_id
     * @mbg.generated
     */
    public void setGrouponId(Integer grouponId) {
        this.grouponId = grouponId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.user_type
     *
     * @return the value of litemall_activity_groupon.user_type
     * @mbg.generated
     */
    public Byte getUserType() {
        return userType;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.user_type
     *
     * @param userType the value for litemall_activity_groupon.user_type
     * @mbg.generated
     */
    public void setUserType(Byte userType) {
        this.userType = userType;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.user_id
     *
     * @return the value of litemall_activity_groupon.user_id
     * @mbg.generated
     */
    public String getUserId() {
        return userId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.user_id
     *
     * @param userId the value for litemall_activity_groupon.user_id
     * @mbg.generated
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.user_name
     *
     * @return the value of litemall_activity_groupon.user_name
     * @mbg.generated
     */
    public String getUserName() {
        return userName;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.user_name
     *
     * @param userName the value for litemall_activity_groupon.user_name
     * @mbg.generated
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.user_age
     *
     * @return the value of litemall_activity_groupon.user_age
     * @mbg.generated
     */
    public Integer getUserAge() {
        return userAge;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.user_age
     *
     * @param userAge the value for litemall_activity_groupon.user_age
     * @mbg.generated
     */
    public void setUserAge(Integer userAge) {
        this.userAge = userAge;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.image
     *
     * @return the value of litemall_activity_groupon.image
     * @mbg.generated
     */
    public String getImage() {
        return image;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.image
     *
     * @param image the value for litemall_activity_groupon.image
     * @mbg.generated
     */
    public void setImage(String image) {
        this.image = image;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.contact_name
     *
     * @return the value of litemall_activity_groupon.contact_name
     * @mbg.generated
     */
    public String getContactName() {
        return contactName;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.contact_name
     *
     * @param contactName the value for litemall_activity_groupon.contact_name
     * @mbg.generated
     */
    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.contact_phone
     *
     * @return the value of litemall_activity_groupon.contact_phone
     * @mbg.generated
     */
    public String getContactPhone() {
        return contactPhone;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.contact_phone
     *
     * @param contactPhone the value for litemall_activity_groupon.contact_phone
     * @mbg.generated
     */
    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.subject_id
     *
     * @return the value of litemall_activity_groupon.subject_id
     * @mbg.generated
     */
    public Integer getSubjectId() {
        return subjectId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.subject_id
     *
     * @param subjectId the value for litemall_activity_groupon.subject_id
     * @mbg.generated
     */
    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.subject
     *
     * @return the value of litemall_activity_groupon.subject
     * @mbg.generated
     */
    public String getSubject() {
        return subject;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.subject
     *
     * @param subject the value for litemall_activity_groupon.subject
     * @mbg.generated
     */
    public void setSubject(String subject) {
        this.subject = subject;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.state
     *
     * @return the value of litemall_activity_groupon.state
     * @mbg.generated
     */
    public Byte getState() {
        return state;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.state
     *
     * @param state the value for litemall_activity_groupon.state
     * @mbg.generated
     */
    public void setState(Byte state) {
        this.state = state;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.pay_state
     *
     * @return the value of litemall_activity_groupon.pay_state
     * @mbg.generated
     */
    public Byte getPayState() {
        return payState;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.pay_state
     *
     * @param payState the value for litemall_activity_groupon.pay_state
     * @mbg.generated
     */
    public void setPayState(Byte payState) {
        this.payState = payState;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.add_time
     *
     * @return the value of litemall_activity_groupon.add_time
     * @mbg.generated
     */
    public LocalDateTime getAddTime() {
        return addTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.add_time
     *
     * @param addTime the value for litemall_activity_groupon.add_time
     * @mbg.generated
     */
    public void setAddTime(LocalDateTime addTime) {
        this.addTime = addTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.created_by
     *
     * @return the value of litemall_activity_groupon.created_by
     * @mbg.generated
     */
    public String getCreatedBy() {
        return createdBy;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.created_by
     *
     * @param createdBy the value for litemall_activity_groupon.created_by
     * @mbg.generated
     */
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.update_time
     *
     * @return the value of litemall_activity_groupon.update_time
     * @mbg.generated
     */
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.update_time
     *
     * @param updateTime the value for litemall_activity_groupon.update_time
     * @mbg.generated
     */
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.updated_by
     *
     * @return the value of litemall_activity_groupon.updated_by
     * @mbg.generated
     */
    public String getUpdatedBy() {
        return updatedBy;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.updated_by
     *
     * @param updatedBy the value for litemall_activity_groupon.updated_by
     * @mbg.generated
     */
    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    public void andLogicalDeleted(boolean deleted) {
        setDeleted(deleted ? Deleted.IS_DELETED.value() : Deleted.NOT_DELETED.value());
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_activity_groupon.deleted
     *
     * @return the value of litemall_activity_groupon.deleted
     * @mbg.generated
     */
    public Boolean getDeleted() {
        return deleted;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_activity_groupon.deleted
     *
     * @param deleted the value for litemall_activity_groupon.deleted
     * @mbg.generated
     */
    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", IS_DELETED=").append(IS_DELETED);
        sb.append(", NOT_DELETED=").append(NOT_DELETED);
        sb.append(", id=").append(id);
        sb.append(", activityId=").append(activityId);
        sb.append(", orderId=").append(orderId);
        sb.append(", orderPrice=").append(orderPrice);
        sb.append(", grouponCode=").append(grouponCode);
        sb.append(", grouponId=").append(grouponId);
        sb.append(", userType=").append(userType);
        sb.append(", userId=").append(userId);
        sb.append(", userName=").append(userName);
        sb.append(", userAge=").append(userAge);
        sb.append(", image=").append(image);
        sb.append(", contactName=").append(contactName);
        sb.append(", contactPhone=").append(contactPhone);
        sb.append(", subjectId=").append(subjectId);
        sb.append(", subject=").append(subject);
        sb.append(", state=").append(state);
        sb.append(", payState=").append(payState);
        sb.append(", addTime=").append(addTime);
        sb.append(", createdBy=").append(createdBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", updatedBy=").append(updatedBy);
        sb.append(", deleted=").append(deleted);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        LitemallActivityGroupon other = (LitemallActivityGroupon) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
                && (this.getActivityId() == null ? other.getActivityId() == null : this.getActivityId().equals(other.getActivityId()))
                && (this.getOrderId() == null ? other.getOrderId() == null : this.getOrderId().equals(other.getOrderId()))
                && (this.getOrderPrice() == null ? other.getOrderPrice() == null : this.getOrderPrice().equals(other.getOrderPrice()))
                && (this.getGrouponCode() == null ? other.getGrouponCode() == null : this.getGrouponCode().equals(other.getGrouponCode()))
                && (this.getGrouponId() == null ? other.getGrouponId() == null : this.getGrouponId().equals(other.getGrouponId()))
                && (this.getUserType() == null ? other.getUserType() == null : this.getUserType().equals(other.getUserType()))
                && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
                && (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName()))
                && (this.getUserAge() == null ? other.getUserAge() == null : this.getUserAge().equals(other.getUserAge()))
                && (this.getImage() == null ? other.getImage() == null : this.getImage().equals(other.getImage()))
                && (this.getContactName() == null ? other.getContactName() == null : this.getContactName().equals(other.getContactName()))
                && (this.getContactPhone() == null ? other.getContactPhone() == null : this.getContactPhone().equals(other.getContactPhone()))
                && (this.getSubjectId() == null ? other.getSubjectId() == null : this.getSubjectId().equals(other.getSubjectId()))
                && (this.getSubject() == null ? other.getSubject() == null : this.getSubject().equals(other.getSubject()))
                && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
                && (this.getPayState() == null ? other.getPayState() == null : this.getPayState().equals(other.getPayState()))
                && (this.getAddTime() == null ? other.getAddTime() == null : this.getAddTime().equals(other.getAddTime()))
                && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy()))
                && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
                && (this.getUpdatedBy() == null ? other.getUpdatedBy() == null : this.getUpdatedBy().equals(other.getUpdatedBy()))
                && (this.getDeleted() == null ? other.getDeleted() == null : this.getDeleted().equals(other.getDeleted()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getActivityId() == null) ? 0 : getActivityId().hashCode());
        result = prime * result + ((getOrderId() == null) ? 0 : getOrderId().hashCode());
        result = prime * result + ((getOrderPrice() == null) ? 0 : getOrderPrice().hashCode());
        result = prime * result + ((getGrouponCode() == null) ? 0 : getGrouponCode().hashCode());
        result = prime * result + ((getGrouponId() == null) ? 0 : getGrouponId().hashCode());
        result = prime * result + ((getUserType() == null) ? 0 : getUserType().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode());
        result = prime * result + ((getUserAge() == null) ? 0 : getUserAge().hashCode());
        result = prime * result + ((getImage() == null) ? 0 : getImage().hashCode());
        result = prime * result + ((getContactName() == null) ? 0 : getContactName().hashCode());
        result = prime * result + ((getContactPhone() == null) ? 0 : getContactPhone().hashCode());
        result = prime * result + ((getSubjectId() == null) ? 0 : getSubjectId().hashCode());
        result = prime * result + ((getSubject() == null) ? 0 : getSubject().hashCode());
        result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
        result = prime * result + ((getPayState() == null) ? 0 : getPayState().hashCode());
        result = prime * result + ((getAddTime() == null) ? 0 : getAddTime().hashCode());
        result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getUpdatedBy() == null) ? 0 : getUpdatedBy().hashCode());
        result = prime * result + ((getDeleted() == null) ? 0 : getDeleted().hashCode());
        return result;
    }

    /**
     * This enum was generated by MyBatis Generator.
     * This enum corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    public enum Deleted {
        NOT_DELETED(new Boolean("0"), "未删除"),
        IS_DELETED(new Boolean("1"), "已删除");

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final Boolean value;

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final String name;

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        Deleted(Boolean value, String name) {
            this.value = value;
            this.name = name;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public Boolean getValue() {
            return this.value;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public Boolean value() {
            return this.value;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getName() {
            return this.name;
        }
    }

    /**
     * This enum was generated by MyBatis Generator.
     * This enum corresponds to the database table litemall_activity_groupon
     *
     * @mbg.generated
     */
    public enum Column {
        id("id", "id", "INTEGER", false),
        activityId("activity_id", "activityId", "INTEGER", false),
        orderId("order_id", "orderId", "INTEGER", false),
        orderPrice("order_price", "orderPrice", "DECIMAL", false),
        grouponCode("groupon_code", "grouponCode", "VARCHAR", false),
        grouponId("groupon_id", "grouponId", "INTEGER", false),
        userType("user_type", "userType", "TINYINT", false),
        userId("user_id", "userId", "VARCHAR", false),
        userName("user_name", "userName", "VARCHAR", false),
        userAge("user_age", "userAge", "INTEGER", false),
        image("image", "image", "VARCHAR", false),
        contactName("contact_name", "contactName", "VARCHAR", false),
        contactPhone("contact_phone", "contactPhone", "VARCHAR", false),
        subjectId("subject_id", "subjectId", "INTEGER", false),
        subject("subject", "subject", "VARCHAR", false),
        state("state", "state", "TINYINT", true),
        payState("pay_state", "payState", "TINYINT", false),
        addTime("add_time", "addTime", "TIMESTAMP", false),
        createdBy("created_by", "createdBy", "VARCHAR", false),
        updateTime("update_time", "updateTime", "TIMESTAMP", false),
        updatedBy("updated_by", "updatedBy", "VARCHAR", false),
        deleted("deleted", "deleted", "BIT", false);

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private static final String BEGINNING_DELIMITER = "`";

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private static final String ENDING_DELIMITER = "`";

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final String column;

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final boolean isColumnNameDelimited;

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final String javaProperty;

        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        private final String jdbcType;

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String value() {
            return this.column;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getValue() {
            return this.column;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getJavaProperty() {
            return this.javaProperty;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getJdbcType() {
            return this.jdbcType;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
            this.column = column;
            this.javaProperty = javaProperty;
            this.jdbcType = jdbcType;
            this.isColumnNameDelimited = isColumnNameDelimited;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String desc() {
            return this.getEscapedColumnName() + " DESC";
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String asc() {
            return this.getEscapedColumnName() + " ASC";
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public static Column[] excludes(Column... excludes) {
            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
            if (excludes != null && excludes.length > 0) {
                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
            }
            return columns.toArray(new Column[]{});
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getEscapedColumnName() {
            if (this.isColumnNameDelimited) {
                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
            } else {
                return this.column;
            }
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table litemall_activity_groupon
         *
         * @mbg.generated
         */
        public String getAliasedEscapedColumnName() {
            return this.getEscapedColumnName();
        }
    }
}